//app.js
import { encrypting } from './utils/config'
import { api } from './utils/config'
App({
  onLaunch: function () {
    // 展示本地存储能力

    // 登录
    // wx.login({

    //   success: res => {
    //     // 发送 res.code 到后台换取 openId, sessionKey, unionId
    //     console.log(res)
    //   }
    // })

    // 获取用户信息
    // wx.getSetting({
    //   success: res => {
    //     if (res.authSetting['scope.userInfo']) {
    //       // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
    //       wx.getUserInfo({
    //         success: res => {
    //           // 可以将 res 发送给后台解码出 unionId
    //           this.globalData.userInfo = res.userInfo

    //           // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
    //           // 所以此处加入 callback 以防止这种情况
    //           if (this.userInfoReadyCallback) {
    //             this.userInfoReadyCallback(res)
    //           }
    //         }
    //       })
    //     }
    //   }
    // })
  },
  getUserInfo: function (cb) {
    var that = this
    if (this.globalData.userInfo) {
      typeof cb == "function" && cb(this.globalData.userInfo)
    } else {
      //调用登录接口
      wx.login({
        success: function (res) {
          let data = {
            code: res.code,
            source: 13
          }
          let areaId = 0
          const url = `${api}/api/third/miniAppLogin`
          that.httpClient.post(url, data).then(res => {
            console.log(res)
            wx.getStorage({
              key: 'cityInfo', //这里的引号key是缓存里的数值名称
              success: function (storares) {
                // console.log(res)
                areaId = storares.data.areaId
                wx.setStorage({
                  key: 'loginParams',
                  data: { openId: res.data.obj.thMemberVo.openId, token: res.data.obj.token, loginType: res.data.obj.thMemberVo.loginType, areaId: areaId }
                })
              }
            })

          })
          wx.getUserInfo({
            success: function (res1) {
              that.globalData.userInfo = res1.userInfo
              typeof cb == "function" && cb(that.globalData.userInfo)
            }
          })
        }
      })
    }
  },
  //请求方式封装
  httpClient: {
    request: function (method, url, data) {
      //返回一个promise实例
      //加密的处理参数
      // if (method === 'POST') {
      //   if (data) {
      //     let a = "&"
      //     for (var i in data) {
      //       a += i + "=" + data[i] + "&"
      //     }
      //     data = encrypting(a)
      //   }
      //   // console.log(data)
      // }
      return new Promise((resolve, reject) => {
        wx.request({
          url: url,
          data: data,
          method: method,
          header: {
            'content-type': 'application/x-www-form-urlencoded' // 默认值
          },
          success: function (res) {
            resolve(res)
          },
          fail: function (res) {
            reject(res)
          },
          complete: function () {
            // console.log('complete')
          }
        })
      })
    },
    //get方法：用来获取数据
    get: function (url) {
      return this.request('GET', url);
    },
    //post方法：用来更新数据
    post: function (url, data) {
      return this.request('POST', url, data);
    },
    //put方法
    put: function (url, data) {
      return this.request('PUT', url, data);
    },
    //delete方法
    delete: function (url, data) {
      return this.request('DELETE', url, data);
    }
  },
  globalData: {
    userInfo: null,
    loginCode: null
  }
})